/**
 * 拦截过滤器模式：用于在请求到达最终目的地之前，通过一系列过滤器对请求进行预处理和后处理。
 * 
 * 示例需求：
 * 我们将创建 FilterChain、FilterManager、Target、Client 作为表示实体的各种对象。
 * AuthenticationFilter 和 DebugFilter 表示实体过滤器。
 * SimpleMain 类使用 Client 来演示拦截过滤器设计模式。
 * 
 * 角色：
 * 过滤器接口：Filter
 * 具体过滤器：AuthenticationFilter、DebugFilter
 * 过滤器管理器：FilterManager；FilterChain是过滤链，管理器的一部分
 * 目标对象：Target
 * 客户端：Client
 */
public class SimpleMain {
    public static void main(String[] args) {
        Client client = new Client();

        FilterManager manager = new FilterManager(new Target());
        manager.addFilter(new AuthenticationFilter());
        manager.addFilter(new DebugFilter());

        client.setFilterManager(manager);
        client.sendRequest("HOME");
    }
}
